package com.duoduo.common.response;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Builder;
import lombok.Data;


/**
 * 返回对象
 *  堆栈（stack_trace）、错误信息(error_message)、错误码（error_code）、提示信息（user_tip）
 *  是一个有效关联并互相转义的和谐整体，但是请勿互相越俎代庖。
 * @author
 */
@Data
@Builder
@ApiModel("返回的对象结构")
public class Result {

    /**
     * 状态码
     */
    @ApiModelProperty("状态码")
    private String code;

    /**
     * 堆栈跟踪
     */
    @ApiModelProperty("堆栈跟踪")
    private String stackTrace;

    /**
     * 错误信息
     */
    @ApiModelProperty("错误信息")
    private String message;

    /**
     * 用户提示信息
     */
    @ApiModelProperty("用户提示信息")
    private String userTip;

    /**
     * 数据记录
     */
    @ApiModelProperty("数据记录")
    private Object data;

    public Result() {
    }

    public Result(String code, String message, String userTip) {
        this.code = code;
        this.message = message;
        this.userTip = userTip;
    }

    public Result(String code, String userTip, Object data) {
        this.code = code;
        this.userTip = userTip;
        this.data = data;
    }

    public Result(String code, String stackTrace, String message, String userTip, Object data) {
        this.code = code;
        this.stackTrace = stackTrace;
        this.message = message;
        this.userTip = userTip;
        this.data = data;
    }
}
